Skip to content

feat(scripts): add build-toolkit using CDK Toolkit Library and fix deprecations#1253

Merged
kaiz-io merged 1 commit intomainfrom
feat/build-toolkit-and-deprecation-fixes
Apr 5, 2026
Merged

feat(scripts): add build-toolkit using CDK Toolkit Library and fix deprecations#1253
kaiz-io merged 1 commit intomainfrom
feat/build-toolkit-and-deprecation-fixes

Conversation

@kaiz-io
Copy link
Copy Markdown
Contributor

@kaiz-io kaiz-io commented Apr 5, 2026

Changes

New: scripts/build-toolkit/

A TypeScript build runner that replaces the bash-based build-*.sh scripts with programmatic CDK synthesis using @aws-cdk/toolkit-lib.

Supports all 5 languages:

  • TypeScript (npm/yarn install → tsc → jest → synth)
  • Python (pip install in venv → synth)
  • Java (mvn compile → mvn test → synth)
  • Go (go build → go test → synth)
  • C#/.NET (dotnet build → synth)

Features:

  • Uses @aws-cdk/toolkit-lib Toolkit class with custom IIoHost to capture all warnings, deprecations, and errors during synthesis
  • Configurable concurrency via p-limit (default: 50% of CPU cores)
  • Structured JSON report with per-project steps, messages, and timings
  • --language filter to build only one language at a time
  • 240 total projects discovered across all languages (230 buildable, 10 skipped)
cd scripts/build-toolkit && npm install

# All languages
npx tsx src/index.ts ../..

# Single language
npx tsx src/index.ts ../.. --language python --output /tmp/report.json

Deprecation fixes

Project Deprecation Fix
s3-sns-lambda-chain Node 16 Lambda runtime Added @aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion feature flag
codepipeline-build-deploy V1 pipeline type Added pipelineType: PipelineType.V2
elasticbeanstalk-bg-pipeline V1 pipeline type + Python 3.6 Added PipelineType.V2, changed PYTHON_3_6 to PYTHON_3_12
lambda-api-ci V1 pipeline type Added pipelineType: PipelineType.V2
ddb/global-table-with-cmk installLatestAwsSdk default Added @aws-cdk/customresources:installLatestAwsSdkDefault: false feature flag

Validation

Smoke tested one project per language (python/lambda-cron, java/lambda-cron, go/lambda-cron, csharp/lambda-cron) - all pass build + synth.

Full TypeScript run: 77 ✅, 4 ❌ (pre-existing credential/snapshot issues), 7 ⏭️


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@kaiz-io kaiz-io force-pushed the feat/build-toolkit-and-deprecation-fixes branch 2 times, most recently from 701bc3c to e72e9a1 Compare April 5, 2026 04:18
…precations

- Add scripts/build-toolkit/ - TypeScript build runner using @aws-cdk/toolkit-lib
  for programmatic synthesis with structured warning/deprecation capture
- Supports all 5 languages: TypeScript, Python, Java, Go, C#/.NET
- Fix Node 16 runtime deprecation in s3-sns-lambda-chain (use NODEJS_LATEST)
- Fix V1 pipeline type in codepipeline-build-deploy, elasticbeanstalk-bg-pipeline,
  lambda-api-ci (use PipelineType.V2)
- Fix Python 3.6 runtime in elasticbeanstalk-bg-pipeline (use PYTHON_3_12)
- Fix installLatestAwsSdk deprecation in ddb/global-table-with-cmk
- Fix all C# projects: net6.0 -> net8.0 (EOL framework), including
  capitalize-string asset path and aws-lambda-tools-defaults.json
- Fix deprecated 'dotnet run -p' -> 'dotnet run --project' in all C# cdk.json
- Fix go/httpapi-lambda test: Template_FromStack API change (add nil opts)
- Fix Go build command in build-toolkit (go build, not go build ./...)
@kaiz-io kaiz-io force-pushed the feat/build-toolkit-and-deprecation-fixes branch from e72e9a1 to a0484f9 Compare April 5, 2026 04:25
@kaiz-io kaiz-io merged commit 17e1b32 into main Apr 5, 2026
9 checks passed
@kaiz-io kaiz-io deleted the feat/build-toolkit-and-deprecation-fixes branch April 5, 2026 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant